<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <!-- 
        函数:
            普通函数   function functionName(){}   this指向window
            匿名函数  函数作为一个变量  多用于回调   this指向window
            回调函数  函数作为一个参数              this指向window
            构造函数  函数名首字母大写              this指向实例化对象
            绑定事件函数                            this指向绑定对象
            定时器函数                              this指向window
            立即执行函数                            this指向window
            对象的方法                              this指向对象

            instanceof 判断一个变量  是否  是另外一个构造函数的实例
            instanceof 相当于属于的意思  (arr instanceof Array)

     -->
    <script>
        function sum(a,b)  //普通函数
        {
            return a+b
        }

        var say=function(a,b)   //匿名函数
        {
            return a+b
        }

        function jia(fn)  //回调函数  用函数作为参数进行传递
        {
            var s=fn(10,20)
            console.log(s);
        }
        // jia(say)

        // (function(i){
        //     //立即执行函数
        // })(i)

        // +function(){}()
        // -function(){}()
        // ~function(){}()

        // document.querySelector("div").onclick=function(){}  //事件里面函数

        // document.querySelector('div').addEventListener('click',function(){}) //回调函数

        function People()
        {
            this.say=function()
            {
                console.log('里面的this',this);
            }
            console.log('外面的this',this);
        }
        People()
        var y=new People()
        y.say()

    </script>
    
</body>
</html>